import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

// 解决导航栏或者底部导航tabBar中的vue-router在3.0版本以上频繁点击菜单报错的问题。
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
    return originalPush.call(this, location).catch(err => err)
}

const routes = [
    {
        path: '/',
        name: 'Manager',
        component: () => import('../views/Manager.vue'),
        redirect: '/home',  // 重定向到主页
        children: [
            {path: '403', name: 'NoAuth', meta: {name: '无权限'}, component: () => import('../views/manager/403')},
            {path: 'home', name: 'Home', meta: {name: '系统首页'}, component: () => import('../views/manager/Home')},
            {path: 'adminPerson', name: 'AdminPerson', meta: {name: '个人信息'}, component: () => import('../views/manager/AdminPerson')},
            {path: 'password', name: 'Password', meta: {name: '修改密码'}, component: () => import('../views/manager/Password')},
            {path: 'admin', name: 'Admin', meta: {name: '管理员信息'}, component: () => import('../views/manager/Admin')},
            {path: 'notice', name: 'Notice', meta: {name: '公告信息'}, component: () => import('../views/manager/Notice')},
            {path: 'user', name: 'User', meta: {name: '用户信息'}, component: () => import('../views/manager/User')},
            {path: 'card', name: 'Card', meta: {name: '会员卡信息'}, component: () => import('../views/manager/Card')},
            {path: 'book', name: 'Book', meta: {name: '资料信息'}, component: () => import('../views/manager/Book')},
            {path: 'cardOrder', name: 'CardOrder', meta: {name: '订单记录'}, component: () => import('../views/manager/CardOrder')},
            {path: 'cardUse', name: 'CardUse', meta: {name: '使用记录'}, component: () => import('../views/manager/CardUse')},
            {path: 'clock', name: 'Clock', meta: {name: '打卡记录'}, component: () => import('../views/manager/Clock')},
            {path: 'grid', name: 'Grid', meta: {name: '网格情况'}, component: () => import('../views/manager/Grid')},
            {path: 'gridReservation', name: 'GridReservation', meta: {name: '位置预定'}, component: () => import('../views/manager/GridReservation')},
            {path: 'gridType', name: 'GridType', meta: {name: '网格类型'}, component: () => import('../views/manager/GridType')},
            {path: 'sysRoom', name: 'SysRoom', meta: {name: '自习室数据'}, component: () => import('../views/manager/SysRoom')},
            {path: 'sysValue', name: 'SysValue', meta: {name: '系统数据'}, component: () => import('../views/manager/SysValue')},
            {path: 'ai', name: 'Ai', meta: {name: 'Ai'}, component: () => import('../views/manager/Ai')}
        ]
    },
    {path: '/login', name: 'Login', meta: {name: '登录'}, component: () => import('../views/Login.vue')},
    {path: '/register', name: 'Register', meta: {name: '注册'}, component: () => import('../views/Register.vue')},
    {path: '*', name: 'NotFound', meta: {name: '无法访问'}, component: () => import('../views/404.vue')},
]

const router = new VueRouter({
    mode: 'history',
    base: process.env.BASE_URL,
    routes
})

// 注：不需要前台的项目，可以注释掉该路由守卫
// 路由守卫
// router.beforeEach((to ,from, next) => {
//   let user = JSON.parse(localStorage.getItem("xm-user") || '{}');
//   if (to.path === '/') {
//     if (user.role) {
//       if (user.role === 'USER') {
//         next('/front/home')
//       } else {
//         next('/home')
//       }
//     } else {
//       next('/login')
//     }
//   } else {
//     next()
//   }
// })

export default router
